/* 
 * File:   aluno.h
 * Author: Vagner Clementino
 *
 * Created on 11 de Março de 2012, 10:27
 */

#define LISTA_ESGOTADA = -1
        
typedef struct{
    int id; /*Identificador da Aluno*/
    int nota;
    int* lista_preferencia;
    int tam_lista_pref;
    int ultima_universidade; /*Indica o indice do vetor lista_preferencia
                             *da ultima universidade para o qual o aluno
                             *tentou se matricular
                              */
}Aluno;


/*Cria dinamicamente uma estrutura do tipo Aluno*/
Aluno* cria_aluno(int id_aluno, int* dados, int tam_lista_pref);

/*Define a lista de preferencia de um Aluno com base em uma string cujos
 * inteiros estao separados por espaco */
void define_lista_preferencia(Aluno** p,int* lista_pref);

/*Imprime as informações contidas na estrutura do tipo Aluno apontada pelo
 *ponteiro p */
void imprime_aluno(const Aluno* a);

/*Dado um Aluno retorna o id da Aluno mais bem colocada em sua lista de 
 * preferencia para qual ela ainda nao tentou formar um par */
int retorna_universidade(Aluno* p);


int grau_de_preferencia(Aluno* p, int id_universidade);